#!/bin/sh

# Slackware build script for tiger
# Written by Menno E. Duursma <druiloor@zonnet.nl

# Exit on most errors
set -e

PRGNAM=tiger
VERSION=3.2.1
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM
tar -xzvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM
chown -R root:root .
chmod -R u+w,go+r-w,a-s .

# To compile it i686 or whatever you would have to patch the Makefile
# to be found in the c/ subdirectory; however i see no need to do that
./configure \
  --with-tigerhome=/usr/share/tiger \
  --with-tigerconfig=/etc/tiger \
  --with-tigerwork=/var/tiger \
  --with-tigerlog=/var/log/tiger \
  --with-tigerbin=/usr/bin

make
make install DESTDIR=$PKG

# Copy bin-files to system standard dir
cp -a $PKG/usr/share/tiger/bin/* $PKG/usr/bin

( cd $PKG
  find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
  find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
)

mkdir -p $PKG/usr/man
cp -a $PKG/usr/share/tiger/man/* $PKG/usr/man

( cd $PKG/usr/man
  find . -type f \( -name '*.man' -a  -name *.in \)-exec gzip -9 {} \;
  find . -type f -exec gzip -9 {} \;
  for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
)

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a [A-Z][A-Z]* tigerrc-* site-* other/*.txt $PKG/usr/doc/$PRGNAM-$VERSION

# Copy script-plugin documentation
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/txt
cp -a $PKG/usr/share/tiger/doc/* $PKG/usr/doc/$PRGNAM-$VERSION/txt
# And in HTML format
cp -a $PKG/usr/share/tiger/html $PKG/usr/doc/$PRGNAM-$VERSION

# Also, include the SlackBuild script in the documentation directory
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

# Remove leftover junk
( cd $PKG
  find . -type d -name CVS | xargs rm -rf
)
( cd $PKG/man
  find . -type f -name '*in.gz' | xargs rm -f
)
( cd $PKG/usr/share/tiger
  rm -rf bin ; rm -rf man ; rm -rf doc ; rm -rf html
)
( cd $PKG/usr/share/tiger/systems
  find . -type d -maxdepth 1 \( ! -name default -a ! -name Linux \)  \
    | xargs rm -rf
)
( cd $PKG/usr/share/tiger/systems/Linux
  rm -rf 0
  rm -rf 1
)

# Move configration files to .new and have doinst.sh decide
mv $PKG/etc/tiger/cronrc $PKG/etc/tiger/cronrc.new
mv $PKG/etc/tiger/tigerrc $PKG/etc/tiger/tigerrc.new
mv $PKG/usr/share/tiger/initdefs $PKG/usr/share/tiger/initdefs.new
mv $PKG/usr/share/tiger/check.tbl $PKG/usr/share/tiger/check.tbl.new
mv $PKG/usr/share/tiger/syslist $PKG/usr/share/tiger/syslist.new
mv $PKG/usr/share/tiger/config $PKG/usr/share/tiger/config.new

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz

# Clean up the temp stuff
if [ "$1" = "--cleanup" ]; then
   rm -rf $PKG
   rm -rf $TMP/$PRGNAM-$VERSION
fi

